//工具类
// url      : `http://admintest.happymmall.com${param.url}` ,
class Tool{
 //使用jquery的ajax进行接口请求
 request(param){

    return new Promise((resolve,reject)=>{
      $.ajax({
          type     : param.type     || 'get',
          url      : param.url || '',
          dataType : param.dataType || 'json',
          data     : param.data     || null,
          success   : res => {
            //数据请求成功
            if(res.status===0){
               typeof resolve === 'function' && resolve(res.data,res.msg);

            }
            //没有登录状态，强制重新登录
            else if(res.status===10){
              this.doLogin();
            }
            //数据请求失败
            else{
              typeof reject === 'function' && reject(res.msg || res.data);
            }
          },//statusText是http请求err对象中的值
           error  : err => {
              typeof reject === 'function' && reject(err.statusText);
          }
      })
    })
 }
 //跳转回登录页面，并带上来的位置的pathname，encodeURIComponent用来处理window.location.pathname中的特殊字符
 doLogin(){
   window.location.href='/login?redirect='+ encodeURIComponent(window.location.pathname);
 }
 //获取URL参数
 getUrlParam(name){
  //URL格式：xxx.com?param=123&param1=234,用正则表达式获取数字部分
  //先获取？后面的内容
  let queryString =window.location.search.split('?')[1] || '',
      reg =new RegExp("(^|&)" + name + "=([^&]*)(&|$)"),
      result =queryString.match(reg);
  return result ? decodeURIComponent(result[2]) : null;
  //result：['param=123','','123','&']
 };
 //错误提示
 errorTips(errorMsg){
  //  if(errorMsg.status === 10){
  //    window.location.href('/login');
  //  }
  alert(errorMsg || '操作成功！');
 }
 //成功提示
 successTips(successMsg){
  alert(successMsg);
 }
 //将登陆信息存入localStorage
 setLocalStorage(name,data){
  let dataType = typeof data;
  //如果res是JSON对象，存储是就要进行JSON序列化处理,保存的就是JSON字符串
  if(dataType === 'object'){
    window.localStorage.setItem(name,JSON.stringify(data));
  }
  //如果res是基础类型
  else if(['number','boolean','string'].indexOf(dataType) >= 0){
    window.localStorage.setItem(name,data);
  }
  //其他不支持类型
  else{
    alert('该类型不能用于本地存储！');
    }
 } 
 //从localStorage中获取登陆信息
 getLocalStorage(name){
  let data = window.localStorage.getItem(name);
  if(data){
    return JSON.parse(data);
  }else{
    return '';
  }
 }
 //删除localStorage中的登陆信息
 removeLocalStorage(name){
  window.localStorage.removeItem(name);
 }

}
export default Tool;